package com.tfjybj.itoo.exam.provider.service;

import com.dmsdbj.itoo.tool.base.service.BaseServicePlus;
import com.github.pagehelper.PageInfo;
import com.tfjybj.itoo.exam.entity.TeacherCourseEntity;
import com.tfjybj.itoo.exam.model.StaffModel;
import com.tfjybj.itoo.exam.model.TeacherCourseModel;

import java.util.List;


/**
 * TeacherCourseService接口
 * teacherCourse表
 *
 * @author 杨江涛
 * @version 2.0.0
 * @since 2.0.0 2018-11-16 20:35:34
 */
public interface TeacherCourseService extends BaseServicePlus<TeacherCourseEntity> {

    //region 模板生成：模糊查询

    /**
     * 根据课程_id模糊查询teacherCourse
     *
     * @param courseId 课程_id
     * @param pageNo   页码
     * @param pageSize 页数
     * @return 模糊查询的teacherCourse
     * @author 杨江涛
     * @since 2.0.0 2018-11-16 20:35:34
     */
    PageInfo<TeacherCourseEntity> queryByLikeCourseId(String courseId, Integer pageNo, Integer pageSize);


    //endregion

    /* **********************************以下为非模板生成的内容********************************* */

    /**
     * 根据课程_id模糊查询teacherCourse
     *
     * @param teacherId 教师_id
     * @return 根据学号查询的teacherCourse
     * @author 杨江涛
     * @since 2.0.0 2018-11-17 15:38:19
     */
    List<TeacherCourseEntity> findByTeacherId(String teacherId);
    /**
     * 根据课程_id查询课程名称
     * @param courseId 课程_id
     * @return 课程名称
     * @author 王雪芬
     * @since 2.0.0 2018-11-17 15:38:19
     */
    String queryCourseName(String courseId);

    /**
     * 根据teacherId查找该教师所授课程下的所有教师信息
     * @param teacherId 教师ID teacherId
     * @return 课程名称
     * @author 杨江涛
     * @since 2.0.0 2018-11-27 20:54:14
     */
    List<TeacherCourseEntity> findTeacherByTeacherId(String teacherId);

    /**
     * 根据courseId查找该课程下所有教师信息
     *
     * @return List<StaffModel>
     * @param courseId 课程ID
     * @author 杨海云
     * @since 2.0.0 2018-11-27 20:52:40
     */
    List<StaffModel> findTeacherByCourseId(String courseId);

    /**
     * 根据查询参数模糊查找该教师及课程信息
     * @return List<TeacherCourseEntity>
     * @param searchInfo 查询参数
     * @author 杨江涛
     * @since 2.0.0 2018-12-7 10:39:04
     */
    List<TeacherCourseModel> findTeacherCourse(String searchInfo);

    /**
     * 根据登录人id查询课程
     *
     * @param teacherId teacherId
     * @return 登陆人所有的课程
     * @author maying
     * @since 2018-12-12 08:55:58
     */
    List<TeacherCourseModel> loginCourse(String teacherId);
    /**
     * 根据学生id查询该学生,该学年课程
     * @param studentId
     * @author  杨海云
     * @since 2.0.0 2019-2-24
     */
    List<TeacherCourseEntity> findByStudentId(String studentId);

//    TODO 待删除
    TeacherCourseEntity queryCourseTeacher(String Operator);

    /**
     * 查询该教师教过的所有课程
     * @param teacherId 教师_id
     * @author 杜雨
     * @since 2019年6月20日
     */
    public List<TeacherCourseEntity> findAllByTeacherId(String teacherId);

}
